import java.util.Arrays;
import java.util.Locale;

public class Test1 {


    //1.找出第一个只出现一次的字符
    public static int firstUniqChar(String s){

        int[] arr=new int[127];

        for(int i=0;i<s.length();i++){
            char ch=s.charAt(i);

            arr[ch]++;

        }

        for(int i=0;i<s.length();i++){

            char ch=s.charAt(i);

            if(arr[ch]==1){
                return i;
            }
        }
        return 0;
    }



    public static void main1(String[] args) {

        String s="bcadb";
        System.out.println(firstUniqChar(s));
    }



    //2.输出最后一个字符串的单词个数


    public static int lastcount(String s){
        String[] s2=s.split(" ");
        return s2[s2.length-1].length();

    }
    public static void main2(String[] args) {
        String s="hello my friends!!";
        System.out.println(lastcount(s));
    }


    //3.验证回文字符串
    // 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后，短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
    //
    //字母和数字都属于字母数字字符。


    //方法1：
    public static boolean palindrome(String s) {
        String s2=isnumChar(s);


        String s3=s2.toLowerCase();
        int left=0;
        int right=s3.length()-1;
        while(left<right){


            if(s3.charAt(left)!=s3.charAt(right)){
                return false;
            }

                left++;
                right--;
        }
        return true;

    }

    private static String isnumChar(String s1){
        char[] ch=s1.toCharArray();
        int i=0;
        String s2="";
        while (i<ch.length){
            if(ch[i]>='a'&&ch[i]<='z' ||
                    (ch[i] >= 'A' && ch[i] <= 'Z')||ch[i]>='0'&&ch[i]<='9'){
                s2 += ch[i];
            }
            i++;
        }
        return s2;
    }

    public static void main3(String[] args) {
        String s="race a car";
        System.out.println(palindrome(s));
    }

    //方法2：

    public static boolean ispalindrome(String s){

       String s1= s.toLowerCase();
       int left=0;
       int right=s.length()-1;
       while(left<right){
           if(left<right&&!del1(s.charAt(left))){
               left++;
           }
           if(left<right&&!del1(s.charAt(right))){
               right--;
           }
           if(s.charAt(left)!=s.charAt(right)){
               return false;
           }
       }
       return true;

    }

    private static boolean del1(char ch){
        if(ch>='a'&&ch<='z'||ch>='0'&&ch<='9'){
            return true;
        }
        return false;
    }
    public static void main(String[] args) {
        String s="race e carq";
        s="jdbie";
        System.out.println(palindrome(s));
    }
}
